package com.shaobufan.museum.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shaobufan.museum.pojo.entity.Collections;
import com.shaobufan.museum.pojo.vo.CollectionsVo;

import java.util.List;

/**
 * @author 17126
 * @description 针对表【museum_collections(馆藏表)】的数据库操作Service
 * @createDate 2024-03-12 23:20:11
 */
public interface CollectionsService extends IService<Collections> {

    /**
     * 通过 id查询藏品
     *
     * @param collectionId 藏品 id
     * @return CollectionsVo
     */
    CollectionsVo searchMuseumCollectionsById(Integer collectionId);

    /**
     * @param collectionId   藏品id
     * @param categoryId     类别id
     * @param collectionEra  藏品年份
     * @param collectionName 藏品名称
     * @return museumCollectionsVoList 符合条件的藏品列表
     */
    List<CollectionsVo> searchMuseumCollections(Integer collectionId, Integer categoryId, String collectionEra, String collectionName);

    /**
     * 插入新馆藏
     *
     * @param categoryId       类别 id
     * @param collectionEra    馆藏时代
     * @param collectionDetail 馆藏详情
     * @param collectionName   馆藏名称
     * @param collectionImage  馆藏图片
     * @return 插入数据的条数
     */
    Integer insertMuseumCollection(
            Integer categoryId,
            String collectionEra,
            String collectionDetail,
            String collectionName,
            String collectionImage
    );

    /**
     * 更新藏品
     * @param collectionId 藏品id
     * @param categoryId 类别id
     * @param collectionEra 藏品年代
     * @param collectionDetail 藏品详情
     * @param collectionName 藏品名称
     * @param collectionImage 藏品图片
     * @return 更新成功 1
     */
    Integer updateMuseumCollection(
            Integer collectionId,
            Integer categoryId,
            String collectionEra,
            String collectionDetail,
            String collectionName,
            String collectionImage
    );

    /**
     * 删除藏品
     *
     * @param collectionId 馆藏id
     * @return deleteById
     */
    Integer deleteMuseumCollectionById(Integer collectionId);

    /**
     * @param collections 藏品实体
     * @return museumCollectionsVo 藏品实体Vo
     */
    CollectionsVo getMuseumCollectionsVo(Collections collections);
}
